Technical Field
The present disclosure relates to server systems operating in conjunction with database servers and more specifically to facilitating handling of crashes in concurrent execution environments of such server systems while processing user queries for data retrieval.
Related Art
Server systems are employed to process user queries for data retrieval. In a common scenario, a user (human being) at a client system causes appropriate user queries to be issued, which are received by server systems. The server system may in turn retrieve the data by issuing appropriate database queries to database servers, and provide corresponding responses to user queries.
Server systems are often implemented with concurrent execution environments to process user queries. Concurrent execution implies that multiple execution entities (e.g., threads) are employed to execute respective tasks (related to processing of the query) in parallel. The execution entities are characterized in that each can be scheduled for execution and managed (suspended and resumed, etc.) independently by the operating system. The execution entities can be executed in parallel, for example, by a time-sliced execution of threads, and/or on multiple independent processors executing respective threads.
Concurrent execution provides benefits such as better utilization of various resources in the server system, enhanced throughput performance, etc., as is well known in the relevant arts. Thus, when server system with concurrent execution environment processes user queries, multiple execution entities (executing in parallel) may be employed to process a single user query.
Crashes are occasionally encountered in such concurrent execution environments while processing user queries. A crash refers to a condition in which processing of a user query causes a disruption to the underlying execution environment (e.g., server system malfunctions or stops processing other queries) such that processing of other user queries is thereafter adversely impacted. Typically corrective measures such as restarting/rebooting are thereafter performed, to restore normal processing facilities for the user queries.
Crashes are of concern in concurrent execution environments due to the challenges presented in debugging the error causing the crash, in addition to the disruption to processing noted above. Challenges are presented in debugging, for example, since the problem may not be consistently reproducible in view of the various possibilities with operation of concurrent execution entities.
Aspects of the present disclosure facilitate handling of crashes in such server systems, as described below.
In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.